From 075187e6564953e6f4a8982879c5b7370ba1fb5b Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Wed, 4 Jul 2007 10:34:18 +0100 Subject: [PATCH] vmx: Write back modified interruptibility-info in enable_intr_window(). Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/vmx/intr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c index f1265219c7..bdc6c50838 100644 --- a/xen/arch/x86/hvm/vmx/intr.c +++ b/xen/arch/x86/hvm/vmx/intr.c @@ -96,6 +96,7 @@ static void enable_intr_window(struct vcpu *v, enum hvm_intack intr_source) /* Having both STI-blocking and MOV-SS-blocking fails vmentry. */ intr_shadow &= ~VMX_INTR_SHADOW_STI; intr_shadow |= VMX_INTR_SHADOW_MOV_SS; + __vmwrite(GUEST_INTERRUPTIBILITY_INFO, intr_shadow); } ctl = CPU_BASED_VIRTUAL_NMI_PENDING; } @@ -169,7 +170,6 @@ asmlinkage void vmx_intr_assist(void) if ( unlikely(idtv_info_field & 0x800) ) /* valid error code */ __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, __vmread(IDT_VECTORING_ERROR_CODE)); - enable_intr_window(v, intr_source); /* * Clear NMI-blocking interruptibility info if an NMI delivery @@ -180,6 +180,8 @@ asmlinkage void vmx_intr_assist(void) __vmread(GUEST_INTERRUPTIBILITY_INFO) & ~VMX_INTR_SHADOW_NMI); + enable_intr_window(v, intr_source); + HVM_DBG_LOG(DBG_LEVEL_1, "idtv_info_field=%x", idtv_info_field); return; } -- 2.30.2